#ifndef _PLATFORM_H_
#define _PLATFORM_H_

#include <hyper_t.h>

/* 平台初始化 */
void platform_init (void);

/* **************** MMU相关设置 **************** */

/* 初始化s3c2440的MMU */
LKHEAD_T void s3c2440_mmu_init (void);

/* 设置 一级页表基地址 (16KB对齐) */
LKHEAD_T void s3c2440_mmu_set_tblbass (u32_t tblphyaddr);

/* 设置 16个域的访问权限 */
LKHEAD_T void s3c2440_mmu_set_domain (u32_t domain);

/* 设置 CACHE (指令和数据) 和 TLB (指令和数据) 数据无效 */
LKHEAD_T void s3c2440_mmu_invalid_dicache (void);

/* 使能MMU */
LKHEAD_T void s3c2440_mmu_set_enable (void);

/* ************ CPU中断向量表相关设置 *********** */

/* 初始化s3c2440的中断向量 */
LKHEAD_T void s3c2440_intvector_init (void);

/* 初始化s3c2440的中断向量 */
LKHEAD_T void s3c2440_intvector_copy (void);

/* extern from vectors.S */
extern void _int_vectors (void);

#endif